package com.lovi.homework;
/**
 * 输入用户名、密码、邮箱，如果信息录入正确，则提示注册成功，否则生成异常对象
 * 要求：
 * (1) 用户名长度为2或3或4
 * (2) 密码的长度为6，要求全是数字  isDigital
 * (3) 邮箱中包含@和.   并且@在.的前面
 * 思路分析
 * (1) 先编写方法 userRegister(String name, String pwd, String email) {}
 * (2) 针对 输入的内容进行校核，如果发现有问题，就抛出异常，给出提示
 * (3) 单独的写一个方法，判断 密码是否全部是数字字符 boolean
 */
public class Homework02 {
    public static void main(String[] args) {
        try {
            userRegister("lovi", "123456", "lovi@163.com");
            System.out.println("注册成功");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    private static void userRegister(String userName, String password, String email) {

//        (1) 用户名长度为2或3或4
        if(userName.length()<2||userName.length()>4){
            throw new RuntimeException("用户名长度为2或3或4");
        }
//        (2) 密码的长度为6，要求全是数字  isDigital
        if(password.length()!=6 || !isDigital(password)){
            throw new RuntimeException("密码的长度为6");
        }
//        (3) 邮箱中包含@和.   并且@在.的前面
        int i = email.lastIndexOf("@");
        int j = email.lastIndexOf(".");
        if(i==-1||j==-1||i>=j){
            throw new RuntimeException("邮箱中包含@和. 并且@在.的前面");
        }
    }

    /**
     * 判断密码是不是全都是数字
     * @param password
     * @return
     */

    private static boolean isDigital(String password){
        char[] array = password.toCharArray();
        for (int i = 0; i < array.length; i++) {
            try {
                Integer.parseInt(String.valueOf(array[i]));
            } catch (NumberFormatException e) {
                throw new RuntimeException("密码要求全为数字！");
            }
        }
        return true;
    }
}
